\begin{comment}As the number of cores in typical multicore architectures increases, 
designers are likely to turn to directory-based cache coherence 
as a mechanism to save bandwidth and improve scalability. 
A baseline directory protocol maintains a bit vector per coherence unit 
(the sharing pattern) representing the processors that currently 
share the memory locations. Several optimizations to reduce the area 
and energy overhead of the directory have been proposed. 
In this paper, we extend the observation that sharing pattern commonality 
across memory locations can be used to compress the directory without 
significant loss in precision, to apply to non-inclusive caches. 
Only the sharing patterns actually present due to current access to shared 
data are represented in a sharing pattern table. 
We show that the use of a sharing pattern table can be used to compress 
a previously proposed directory protocol that compresses shadow tags, 
resulting in compounded area reductions without significant loss in 
precision. 
\end{comment}
One of the key scalability challenges of on-chip coherence in a
multicore chip is the coherence directory, which provides information
on sharing of cache blocks. Shadow tags that duplicate entire private 
cache tag arrays are widely used to minimize area overhead, 
but require an energy-intensive associative
search to obtain the sharing information. Recent research proposed a
Tagless directory, which uses bloom filters to summarize the tags in a
cache set. The Tagless directory associates the sharing vector with the
bloom filter buckets to completely eliminate the associative
lookup and reduce the directory overhead. However, Tagless
still uses a full map sharing vector to represent the sharing information, 
resulting in remaining area and energy challenges with increasing core counts.


In this paper, we first show that due to the regular nature of
applications, many bloom filters essentially replicate the same sharing
pattern. We next exploit the pattern commonality and
propose SPATL\footnote{SPATL is pronounced as Spatial}
(Sharing-pattern based Tagless Directory). \sys\ exploits the 
sharing pattern commonality to decouple the sharing patterns from the 
bloom filters and eliminates the redundant copies of sharing patterns. 
\sys\ works with both inclusive and non-inclusive
shared caches and provides 34\% storage savings over Tagless, 
the previous most storage-efficient directory, at 16 cores.  We study
multiple strategies to periodically eliminate the false sharing that
comes from combining sharing pattern compression with Tagless, and
demonstrate that \sys\ can achieve the same level of false sharers as
Tagless with $\simeq$5\% extra bandwidth. Finally, we demonstrate that
\sys\ scales even better than an idealized directory and can support
1024-core chips with less than 1\% of the private cache space for data
parallel applications.

